# -*- coding: UTF-8 -*-
# Project : zhaobiao
# File : loading.py
# IDE : PyCharm
# Author : 博科（鑫贝西）田聪
# Date : 2021/11/15 15:54


import json
import os
import re

import jieba.posseg

JSON_PATH = os.path.dirname(__file__) + os.sep + "area.json"  # 省份

st_addr = os.path.dirname(__file__) + os.sep + "stopword"

baidu_sw = st_addr + os.sep + 'baidu_stopwords.txt'

cn_sw = st_addr + os.sep + 'cn_stopwords.txt'

jieba_sw = st_addr + os.sep + 'jieba_stopwords.txt'

scu_sw = st_addr + os.sep + 'scu_stopwords.txt'

daxue_sw = st_addr + os.sep + 'daxue_stopwords.txt'

# 企业名称开头数据
START_WORD = ['天水','邦成','点将','伍源','联袂', '安塞', '上汽', '百弘', '长广', '政采云', '联众', '精佳', '九方', '斯维', '联通', '科汇', '雷柏特', '瑞', '中交建', '泰和', '平果',
              '雏鹰', '爱牧', '纵览', '武大', '西门子', '包钢', '上药', '秩禾', '大眼萌', '环宇', '泰尼', '麦讯', '广', '蕾', '中宇', '辉', '赢富', '思源',
              '中华', '中韵', '利研', '中钢', '华立', '科腾汇', '尚净', '石药', '特', '吉芮', '中景', '中油', '现代', '望家欢', '晶硕', '迈基诺', '星童',
              '宁畅', '明基', '建勘', '森西', '丹娜', '东华', '中持', '重药', '三阳开泰', '联创', '龙姿', '费', '西诺', '徕卡', '合壹', '博润', '普尼',
              '宝略',
              '绿秧', '中煤', '中宝', '咸亨', '禾缘', '科', '中穗', '卡尤迪', '仟', '亿宁', '康力克', '赛默飞', '中袖', '斯达克', '珺', '中鑫', '科迪',
              '红相',
              '赛诺', '鸿海', '宏峰', '禾易', '珺晟', '复纳', '世纪', '贝勃', '力德', '泓康', '晋煤', '鸿', '大象', '泛联', '嘉林', '早益', '万孚', '吉',
              '中正', '新富豪', '碧空', '化学', '亿诚', '巨吉', '慧影', '哈药', '爱德', '伯泉', '同方', '万宏', '泰源', '锐', '腾', '润', '臻创', '派',
              '川', '贵伟', '尚水', '科威', '米未', '科院', '融域', '汇泉', '索虑', '铭记', '京东方', '澳鹏', '中冕', '城市', '慧医', '福岳', '点', '中城',
              '中水电', '中测', '奥林', '纳德', '维迪康', '立靖合', '金一', '海中', '斑马', '科邦', '威高', '泰贻', '农芯', '顺风耳', '澳柯玛', '正泰', '软件',
              '京广', '国浩', '医汇', '臻', '麦达', '申', '颂富', '同创', '中智', '金鹰', '锐友', '维', '海口', '全科', '致微', '核工业', '康源', '艾杰仑',
              '科盛', '马', '中交', '一鸣', '岩之澜', '戴工', '美的', '中铝', '交通', '化工', '勤达', '通用电气', '谱', '宝航', '澳', '煤炭', '飞利浦',
              '铁汉',
              '因斯', '野趣', '中通', '华诚博', '京师', '康威', '奈澈', '盈康', '中元', '北斗', '亮鑫亮', '惠特', '幼乐美', '叱咤', '通标', '中筑', '福克斯',
              '友邦', '华润', '帅花猪', '华荣', '税友', '泽绍', '联凯', '曙光', '海', '硕谷', '瑞合', '联想', '通化', '德美', '棕榈', '中汽', '申万',
              '力合',
              '海王', '远迈', '中为', '飞凡', '吉好', '国泰', '哈富', '绿', '奕信', '中宏', '理', '国药', '东方', '阳', '清控', '普天', '中网', '时代',
              '建材', '国家', '戴纳智', '学透通', '佰', '华明', '新华', '鑫鑫', '徐工', '图', '华瑞', '碧普', '东风', '国基', '兴泰', '捷达',
              '帝杰曼',
              '中境', '万达', '天辰', '匠人', '安正', '戴尔', '中恒', '中化', '理德', '百特', '秦汉唐', '中冠', '海绵', '迪迪', '天', '热电', '博智', '诚',
              '博视', '贝克', '厚福', '希然', '汉医', '中地', '寅岗', '贞松', '洋浦', '宏', '国交', '筑美', '宜章', '杰然兴', '碧', '海信', '阿里巴巴',
              '厚',
              '智享', '绿地', '昌盈', '建科', '爱玛', '中电', '比亚迪', '沃', '天厦', '阿', '新', '安欣世', '华宇', '大唐', '亿普', '大元', '东软', '良工',
              '惠益',
              '建学', '瑞雷博', '广电', '杨凌', '正方', '公牛', '中', '智博', '中航', '中拓', '中质', '浩天', '易安', '橙志', '中机',
              '博杰', '康贝德', '合诚', '以荣', '中蓝', '泓', '纽珑', '益', '好生活', '江', '奉新', '卫宁', '科大', '健世达', '成林', '天臻', '中星',
              '润理',
              '金蝶', '中大', '君鑫', '东芝', '森赫', '岭粤', '中涂', '人福', '景宁', '亿维', '通用', '华颐', '君康', '中石化', '加佳', '芯谋', '信德利',
              '奥托', '中铁', '中建', '华奥', '金点', '安', '华庆', '全测', '科迅', '镁', '正康', '壹辅', '微康', '宝宏', '毅和', '米', '东元', '德格',
              '帕瑞', '宏葵', '普尔', '北控', '索', '才风', '英', '先勤', '新为邦', '致创', '元芳', '稳致', '汇美', '理想', '倍力曼', '天一', '华璟',
              '兰博',
              '硕', '大西洋', '景鸣', '天尚', '建中', '北方', '安吉', '沃德', '泽英', '聚光', '鲁东', '菱王', '建发', '赛尔', '百诺', '马尔文', '国邦',
              '凯思',
              '星愿', '林产', '博锐', '绿康', '铁道', '西格码', '安博', '公安', '昆药', '第成', '优数', '麦乐', '中坛', '力强', '立今', '弗德', '中仪',
              '金税',
              '点明', '威特', '阶梯', '锐时', '速衡', '豫嘉', '速信', '博动', '博纳', '产越', '和', '中船', '凌云', '海强', '骅林', '中策', '晨光', '立达',
              '中外', '奥来', '启润', '山', '诺', '艾', '英潍', '驭信', '铭扬', '中佳', '中广', '诚石', '浙锚', '爱刷', '国润', '卓越', '梅里', '世仓',
              '百', '瀚蓝', '药大', '中土', '烽台', '冠新', '公诚', '考伊斯', '中亿', '奥国', '卓益', '鸿宝', '中检', '博睿', '康祥', '快客', '远望',
              '潋江',
              '臻悦', '鲲鹏', '诺星', '广药', '蒲公英', '恒芮', '健康', '大龙', '华昆', '中设', '世清', '百奥', '富士通', '联宇', '中移', '建业', '天缘',
              '卡迪诺', '希诺', '航天', '腾展', '建盟', '研科', '艺普', '康普安', '英科', '工业', '积成', '万里', '标格达', '中冶', '圣弘', '斑马鱼', '博勤',
              '江澄', '中建安', '吴江', '辛芮', '通号', '众成', '圆设计', '汉寿', '中勘', '华安', '圣奥', '益康', '化生', '长信', '辉瑞', '宇星', '国信',
              '华蔚', '天翼', '康辉', '铂', '恒裕', '大陆', '门源', '金', '贞', '中农', '鼎盛', '邵阳', '凯麦斯', '宏大', '丽兹', '运输', '中车', '和信',
              '奥索', '贝', '海外', '得力', '铁越', '联盟', '博大', '费勉', '四季', '七维', '大光', '百世', '科圣', '亚', '中集', '重', '吴中', '镁钟',
              '奥美', '呼研', '桦晟', '大地工程', '贝克曼', '法尔', '爱', '中生', '汇绿', '千奥', '科瑞恩', '乐禾', '九惠', '浪潮', '华晟', '迪欧', '国众',
              '国网', '恩德莱', '中兵', '华翱', '新域', '国策', '烽', '国开', '机械', '中创', '中环', '泰豪', '润田', '维沃', '中经', '桑瑞思', '同济',
              '林德',
              '恒达', '网', '互邦', '艾琅', '医贝', '博华', '水利', '新潆', '国科', '零迪', '百众', '紫迈', '迈宝', '凯杰', '怡达', '蜗牛', '美誉',
              '中山', '老肯', '蕾润', '技术', '国康', '正澜', '赛', '岩', '设维施', '谱尼', '中核', '国控', '蔡司', '丕东', '紫荆花', '大满冠', '国水',
              '旺复康', '石板', '医品', '镇江龙', '碧桂园', '布鲁克', '亚太', '杰美', '诚邦', '浩蓝', '中共', '固力', '超越', '坤昱', '百林', '忠信', '星河',
              '卓和', '嘉美',
              '复星', '北铃', '海之魂', '锦鸿', '李斯特', '中净', '金梦源', '聚擘', '北大医疗', '仪衡', '和创', '首康', '坤罡', '卓旭', '元泰', '昌隆', '丹宏',
              '亿锦联', '数据堂',
              '中天', '捷锐', '米开罗那', '艾本德', '鑫高益', '鸿道', '东亮', '佳尚', '京缆', '萨尔氏斯', '常泰', '耶拿', '斯德', '木森', '佰泰', '瑞冬',
              '晟豪', '大检联',
              '三方顺', '华信', '厚霖', '墨尚', '爱彼思', '巨能', '罗蒙', '华沛', '邦道', '容海川', '迈施特', '心韵', '川楚', '康森特', '程力', '正宇', '恒新',
              '信领科', '码蹄',
              '辰卓', '信息产业电子', '疆南春', '东瑞', '祥源', '德仪', '白沙青', '海鹰', '琥宁', '凯景', '中基', '天瑞', '康之', '麦德龙', '广惠', '华义',
              '中国移动', '中国电信', '中国联通', '海逸', '区疾病'
              ]

# 垃圾数据，包含这些的都剔除
LESE_WORD = ['捷康','专用设备', '城市规划', '温热电', '实验室专用', '采购', '重点', '上门', '技术培训', '招投标诚信投核心', '化生物', '财政部门', '商组织', '之日起', '发现',
             '中标', '暴力', '手段', '非法', '涉嫌', '黑恶', '势力', '请向', '先生', '联系', '方式', '名称', '地址', '下载', '文件', '详细', '相关', '公告',
             '感谢', '衷心', '我师', '积极', '和', '和', '提出', '质疑', '在此', '元', '万元', '国家级', '地址', '银行', '支付', '开户', '商务', '得分',
             '偏低', '部分', '东大街', '村', '系统','商务中心','号','成交','研究中心专用设备','操作','技术','问题','请','单位','评审','联合体','小组','人民币']
# 中段结尾，它后面可能会有其他结尾
ED = '有限公司|股份有限公司|有限责任公司|医院|学校|队|事务所|学会|协会|合作社|电视台|家具店|商行|商场|厅|制造厂|批发部|监督所|印刷厂|加工厂|仪器厂'

# 必定结尾，它之后无结尾
WED = '分公司|附属医院|总医院|中心局|院区|分局|分院|中心支公司|支公司|经销处'

# 起始结尾，它后面可能会有其他结尾
ZED = '委员会|院|医药|中心|小组|管委会|工作局|农村局|防治院|大学|中心环境|学院|疗养院|支队|检察院|检测所|健康局|生育局|检验所|监测站|审计局|基地|血站|改革局|中心站|总队|监察所|检查站|中医院|港口|海关|科技局|卫生站|研究所|研究院|派出所|管理站|管理局|保健院|机关|部队|管理区|中学|公安局|小学|林场|处理场|政法委|居委会|办事处|总工会|卫生院|人民医院|体育局|民政局|管理局|环保局|中心医院|幼儿园|友谊医院|'


print("\r\njieba词库\r\nloading....")


def st_en_wed_read():
    print('更新额外内容....')
    for i in START_WORD:
        jieba.add_word(i, 2000, 'sts')

    for i in ED.split('|'):
        jieba.del_word(i)
        jieba.add_word(i, 2000, 'ed')

    for i in WED.split('|'):
        jieba.del_word(i)
        jieba.add_word(i, 2000, 'wed')

    for i in ZED.split('|'):
        jieba.del_word(i)
        jieba.add_word(i, 2000, 'zed')

    jieba.add_word('附属', 2000, 'and')
    jieba.add_word('与', 2000, 'and')
    jieba.add_word('联合体', 2000, 'and')

    jieba.add_word('木垒县', 2000, 'ns')
    jieba.add_word('新新', 1000, 'dieci')


def are_json_read():
    print('更新省/市/县/乡/镇内容....')

    area_json = json.load(open(JSON_PATH, 'rb+'))

    for area in area_json:
        area_name = area['name']
        jieba.add_word(area_name, 2000, 'ns')
        if '省' in area_name:
            jieba.add_word(re.sub('省', '', area_name), 1000, 'ns')

        elif '市' in area_name:
            jieba.add_word(re.sub('市', '', area_name), 800, 'ns')

        elif '县' in area_name:

            jieba.add_word(re.sub('县', '', area_name), 600, 'ns')

        else:
            jieba.add_word(area_name, 1000, 'ns')


def del_index():
    print('删除混淆词语')
    int_ch = {1: '一', 2: '二', 3: '三', 4: '四', 5: '五', 6: '六', 7: '七', 8: '八', 9: '九', 10: '十'}
    for i in range(1, 11):
        jieba.del_word('第{}'.format(int_ch.get(i)))
        jieba.del_word('{}中'.format(int_ch.get(i)))


def read_stop_word():
    print("清除停止词.....")
    baidu_word = [i.replace('\n', '') for i in open(baidu_sw, 'r', encoding='utf-8').readlines()]

    cn_word = [i.replace('\n', '') for i in open(cn_sw, 'r', encoding='utf-8').readlines()]

    jieba_word = [re.sub('\s\d.*\n', '', i) for i in open(jieba_sw, 'r', encoding='utf-8').readlines()]

    scu_word = [i.replace('\n', '') for i in open(scu_sw, 'r', encoding='utf-8').readlines()]

    daxue_word = [i.replace('\n', '') for i in open(daxue_sw, 'r', encoding='utf-8').readlines()]

    for i in baidu_word:
        jieba.del_word(i)
        # jieba.suggest_freq(i, True)
    for i in cn_word:
        jieba.del_word(i)
        # jieba.suggest_freq(i, True)
    for i in jieba_word:
        jieba.del_word(i)
        # jieba.suggest_freq(i, True)
    for i in scu_word:
        jieba.del_word(i)
        # jieba.suggest_freq(i, True)
    for i in daxue_word:
        jieba.del_word(i)

    # 去除医院
    jieba.del_word('北京友谊医院')
    jieba.del_word('中国康复研究中心')
    jieba.del_word('北京大学第一医院')
    jieba.del_word('北京妇产医院')
    jieba.del_word('妇产医院')
    jieba.del_word('友谊医院')
    jieba.del_word('北京朝阳医院')
    jieba.del_word('朝阳医院')
    jieba.del_word('民医院')
    jieba.del_word('北京协和医院')
    jieba.del_word('协和医院')
    jieba.del_word('康复中心')
    jieba.del_word('湘雅医院')
    jieba.del_word('人民检察院')
    jieba.del_word('儿童医院')
    jieba.del_word('中医医院')
    jieba.del_word('人民政府')
    jieba.del_word('北京大学第三医院')
    jieba.del_word('华山医院')
    jieba.del_word('药品监督管理局')
    jieba.del_word('空军医院')
    jieba.del_word('中华人民共和国财政部')

    jieba.del_word('中国银行')
    jieba.del_word('建设银行')
    jieba.del_word('工商银行')
    jieba.del_word('广发银行')
    jieba.del_word('招商银行')
    jieba.del_word('民生银行')
    jieba.del_word('齐鲁银行')

    jieba.del_word('西海')

def set_lese_word():
    print("更新垃圾数据....")
    for i in LESE_WORD:
        jieba.del_word(i)
        jieba.add_word(i,1000,'lese')



read_stop_word()
del_index()
st_en_wed_read()
are_json_read()
set_lese_word()

